\documentclass[a4paper,11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{float}
\usepackage{graphicx}
\usepackage{listings}
\usepackage[usenames,dvipsnames]{xcolor}

\usepackage{amssymb, amsmath}

\lstset{
 language=Java,
 numbers=left,
 frame=single,
 basicstyle=\footnotesize,
 captionpos=b,
 showspaces=false,
 showstringspaces=false,
}

\begin{document}

\section{Graficzny interfejs użytkownika}
Główne okno programu zostało przedstawione na rysunku \ref{fig1}. Składa się ono z paska menu, w którym istnieje możliwość przejść do opcji zaawansowanych, z pola roboczego zbudowanego z 3 paneli oraz przycisku generującego podsumowanie.

\begin{figure}[ht]
    \centering
      \includegraphics[width=0.7\textwidth]{images/mainGui.png}
    \caption{Okno główne.}
    \label{fig1}
\end{figure}

\subsection{Generowanie podsumowania}
W oknie głównym znajdują sie 3 panele:
\begin{itemize}
  \item ilość - zawierajacy kwantyfikatory,
  \item zbiór cech - zawierający zmienne lingwistyczne,
  \item cechy - zawierajacy cechy aktualnie zaznaczonej zmiennej lingwistycznej z panelu zbiór cech.
\end{itemize}
Panel \textit{Cechy} po uruchomieniu aplikacji jest pusty. Zostanie on uzupełniony w momencie wybrania elementu z panelu \textit{Zbiór cech}. Z paneli wybieramy opcje dla których będą generowane podsumowania, a następnie naciskamy na przycisk \textit{Generuj}.
Po wykonaniu obliczeń pojawia się nowe okno (rysunek \ref{fig2}) z tabelą zawierającą treść podsumowania wraz z jej miarami. W oknie mamy możliwość wyboru podsumowań oraz zapisu ich do pliku.

\begin{figure}[ht]
    \centering
      \includegraphics[width=0.9\textwidth]{images/summary.png}
    \caption{Okno wygenerowanego podsumowania.}
    \label{fig2}
\end{figure}


\subsection{Opcje zaawansowane}
Opcje zaawansowane umożliwiają definiowanie, modyfikowanie oraz usuwanie kwantyfikatorów, cech i zmiennych lingwistycznych.

\subsubsection{Kwantyfikatory}
\begin{figure}[ht]
    \centering
      \includegraphics[width=0.5\textwidth]{images/kwantyfikatory.png}
    \caption{Okno definiowania kwantyfikatorów.}
    \label{fig3}
\end{figure}
Okno kwantyfikatory (rysunek \ref{fig3}) składa się z:
\begin{itemize}
  \item listy rozwijanej zawierającej nazwy kwantyfikatorów,
  \item przycisku dodającego nową nazwę kwantyfikatora,
  \item przycisku usuwającego aktualnie zaznaczonego kwantyfikatora,
  \item przycisku definującego przestrzeń rozważań
  \item przycisku definującego funkcje przynależności
  \item przycisku zapisującego nowy kwantyfikator bądź aktualizujący modyfikacje kwantyfikatora
\end{itemize}

Tworzenie nowego kwantyfikatora odbywa się w następujący sposób:
\begin{enumerate}
  \item utworzenie nowej nazwy kwantyfikatora - przycisk \textit{Nowy},
  \item wybranie z rozwijanej listy nowego kwantyfikatora,
  \item określenie typu oraz zdefiniowanie przestrzeni rozważań,
  \item określenie typu oraz zdefiniowanie funkcji przynależności,
  \item zatwierdzenie wartości - przycisk \textit{Zapisz}.
\end{enumerate}

Usuwanie kwantyfikatora odbywa się poprzez wybranie kwantyfikatora, a następnie naciśnięcia przycisku usuń.

Modyfikacja kwantyfikatora odbywa się w analogiczny sposób co tworzenie nowego kwantyfikatora za wyjątkiem definiowania jego nazwy.

\subsubsection{Cechy}
Okno \textit{cechy} (rysunek \ref{fig4}) jest rozszerzeniem okna \textit{kwantyfikatory}. Poza polami znajdującymi się w oknie kwantyfikatorów zawiera rozwijalną listę nazw atrybutów tabeli. Procec dodawania/edytowania/usuwania jest analogiczny do tych samych procesów co w kwantyfikatorach.

\begin{figure}[ht]
    \centering
      \includegraphics[width=0.5\textwidth]{images/cechy.png}
    \caption{Okno definiowania cech.}
    \label{fig4}
\end{figure}

\subsubsection{Zmienna lingwistyczna}
\begin{figure}[ht]
    \centering
      \includegraphics[width=0.5\textwidth]{images/zmiennaLingwistyczna.png}
    \caption{Okno definiowania zmiennej lingwistycznej.}
    \label{fig5}
\end{figure}
Okno zmiennej lingwistycznej (rysunek \ref{fig5}) składa się z:
\begin{itemize}
  \item listy rozwijanej zawierającej nazwy zmiennych lingwistycznych,
  \item przycisku dodającego nową nazwę zmiennej lingwistycznej,
  \item przycisku usuwającego aktualnie zaznaczonej zmiennej lingwistycznej,
  \item przycisku definującego przestrzeń rozważań,
  \item panelu zawierającego cechy wcześniej zdefiniowane,
  \item przycisku zapisującego nową zmienną lingwistyczną bądź aktualizujący modyfikacje zmiennej lingwistycznej.
\end{itemize}

Tworzenie nowej zmiennej lingwistycznej odbywa się poprzez: zdefiniowania nowej nazwy zmiennej (przycisk \textit{Nowa}), określenia typu przestrzeni rozważań oraz jej zdefiniowania, wybraniu z cech i zakończenia procesu przez naciśnięcie przycisku \textit{Zapisz}.

\subsection{PLiki konfiguracyjne}
Jedną z cech aplikacji jest możliwość ,,zapamiętywania'' wcześniej zdefiniowanych parametrów. Parametry (kwantyfikatory, cechy, zmienna lingwistyczna) zapisywane są do odpowiednich plików konfiguracyjnych w formacie xml. 

\begin{lstlisting}
<schema>
  <Features typeUniverse="gesta" typeMembership="trojkatna">
    <Name>grano krotko</Name>
    <UniverseOfDiscourse>0;60</UniverseOfDiscourse>
    <PointsOfMebershipFunction>1.0;1.0 8.0;1.0 10.0;0.0</PointsOfMebershipFunction>
    <Column>min</Column>
  </Features>
  <Features typeUniverse="gesta" typeMembership="trojkatna">
    <Name>nie grano wcale</Name>
    <UniverseOfDiscourse>0;60</UniverseOfDiscourse>
    <PointsOfMebershipFunction>0.0;1.0 1.0;0.0 60.0;0.0</PointsOfMebershipFunction>
    <Column>min</Column>
  </Features>
</schema>
\end{lstlisting}

Powyższy listing prezentuje jeden z 3 plików konfiguracyjnych. Jest on przykładem przechowywania cech w pliku xml. Obiekty w pozostałych przypadkach przechowywane są w podobny sposób. Należy nadmienić, że plik konfiguracyjny zmiennych lingwistycznych jest zależny od pliku konfiguracyjnego cech, gdyż zawiera on w tagach \textit{Features} odwołania do cech.


%wzor
\begin{equation}
  k \sum^{z-1}_{i=0} \binom{z}{i} (2^{z-1}-1)
\end{equation}


\end{document}
